㈠ 大一C语言求解答
(三)项目四 数组
选择题:
1.若二维数组a有m列,则在a[i][j]前的元素个数为____d____.
a)j*m+i b)i*m+j c)i*m+j-1 d)i*m+j+1
2.以下对二维数组a的正确说明是____c____.
a)int a[3][]; b)float a(3,4); c)double a[1][4]; d)float a(3)(4);
3.若有说明:int x[][3]={1,3,5,7,9,11};,则x数组的行数为____A___。
A.2 B.3 C.4 D.无确定值
4.若有以下定义
int a[ ]={1,2,3,4,5,6,7};
char c1=’b’,c2=’2’;
则数值不为2的表达式是_____A_____。
A.c2-0 B.a[1] C.’d’-c1 D.a[‘3’-c2]
5.以下程序的输出结果是_____B______。
main( )
{ int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=0;i<3;i++)
for(j=0;j<=i;j++)
s+=a[i][j];
printf(“%d\n”,s);
}
A.18 B. 19 C. 20 D. 21
6.有两个字符数组a、b,则以下正确的输入语句是___b____.
a)gets(a,b); b)scanf("%s%s",a,b);
c)scanf("%s%s",&a,&b); d)gets("a"),gets("b");
7.当执行下面的程序时,如果输入ABC,则输出结果为____A_____。
#include <stdio.h>
#include <string.h>
main()
{char ss[10]=”1,2,3,4,5”;
gets(ss);strcat(ss,”6789”);printf(”%s\n”,ss);
}
A. ABC6789 B. BC67 C. 12345ABC6 D. ABC456789
8.判断字符串s1是否大于字符串s2,应当使用___d____.
a)if(s1>s2) b)if(strcmp(s1,s2))
c)if(strcmp(s2,s1)>0) d)if(strcmp(s1,s2)>0)
填空题:
1.下面程序以每行4个数据的形式输出a数组,请填空。
#define N 20
main()
{ int a[N],i;
for(i=0;i<N;i++)scanf("%d",___a+i____);
for(i=0;i<N;i++)
{if (___(i+1)%4==0____) ___printf("\n");____
printf("%3d",a[i]);
}
printf("\n");
}
2.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};
则初始化后,a[1][2]的初值是____0_____,a[2][1]的初值是____6_____。
3.下面程序的运行结果是__7,3___。
main( )
{ int a[10]={10,2,-13,21,11,67,-78,8,90,-53};
int i,x=0, y=0;
for(i=0;i<10;i++)
if(a[i] >0) x++;
else y++;
printf(“%d,%d\n”, x, y );
}
4.下面程序的功能是:输入50个数,按逆序输出,请填空。
main( )
{int a[50],i;
for(i=0;i<50;i++)
scanf(“%d”, &a[i]);
for(___i=49____;i>=0;__i--___)
printf(“%4d”,a[i]);
}
5. 下面程序可求出矩阵a的除主对角线上的元素之和,请填空。
main()
{ int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(__i!=j__)sum=sum+___a[i][j]____;
printf("sum=%d\n",sum);
}
6. 下面程序的功能是在三个字符串中找出最小的,请填空。
#include<stdio.h>
#include<string.h>
main()
{ char s[20],str[3][20];
int i;
for(i=0;i<3;i++)gets(str[i]);
strcpy(s,__strcmp(str[0],str[1])<0_? str[0] : str[1]__);
if(strcmp(str[2],s)<0)strcpy(s,str[2]);
printf("%s\n",___s____);
}
㈡ 大学生自学编程需要看哪些书
此推荐书籍和学习顺序是针对编程学习而言,不是针对计算机专业而言。学习这些书籍后,对于从事软件开发行业,则可以起步更快,而不是等到毕业后才知道。非计算机专业可能转行到软件开发的更是需要学习了。
大一上:
C Primer Plus
说明:大一刚进入大学,对于大学是陌生的,需要一定的时间熟悉。只需要自己学好C语言即可。
大一下:
VS使用:Visual Studio程序员箴言
C和指针
说明:学习编程需要熟悉开发工具,这是编程的基础。而C语言学习也需要加深。
大二上:
数据结构C语言版
C++ Primer Plus
说明:学习了基本的编程语言后,需要开始了解数据接算法基础了。同时,也需要学习面向对象的编程语言了。C++将作为主要的语言推荐,作为修炼大神必备语言基础。
大二下:
Windows程序设计
Linux系统使用
标准程序库STL
说明:语言学的差不多了,就需要了解操作系统的编程。Windows系统的使用则不必专门学习了,接触的多自然也熟悉。但是Linux系统的使用则需要额外的学习一下。然后对于编程需要进一步的学习程序库的使用,学习使用程序库提高开发效率,打好基础。
大三上:
计算机操作系统(非计算机专业自己学)
Boost入门
数据结构C++语言版
Windows核心编程
说明:学完了C++,因为数据结构是软件开发非常中重要的基础,所以再用面向对象思想来学习加深数据结构。在实际开发过程中,很多时候都是用面向对象的方式来做的。然后就是学习操作系统的基础理论和加深Windows编程,再学习一个程序库Boost,以后将会普及,需要提前学好。
大三下:
计算机网络(非计算机专业自己学)
MFC程序设计
Linux编程
说明:计算机网络也是必学的计算机理论,然后接触实际的开发库MFC。作为Windows开发MFC还是需要学习的,学会使用,然后学会MFC的设计思想等,其他框架其实想通的。Linux也需要开始编程了。
大四:
C++编程风格
C++编程惯用法_高级程序员常用用法和技巧
设计模式:可复用面向对象软件的基础
大道至简-软件工程实践者的思想
说明:大四开始面向毕业了,需要学习更多的开发规范,提高编程质量,提高解决问题的能力,需要学习一些高级层次的软件开发思想,毕竟前面已经有很多基础了。这个可以再根据个人的实际情况扩展。