1. 一个完整的C程序有且仅有一个 函数。 2. 在内存中存储一个字符 „a‟ 占用______个字节,
而存储字符串 ”abcdef” 则占用________个字节。 3. 表达式 4/5的值为________。
4. 设 int x=9,y=8,z=7,w; w=x>y>z; 则w的值为_________。 5. 设 x=4.5,a=7,y=3.4, 表达式x+a%3*(int)(x+y)%2/4的值为_____。 6. 设 a=14, 执行 a+=a-=a*=a 后,a=___________。 7. 设x=y=z=6, 执行 x=(y>z)?x+2:x-2; 后,x=__________。 8. getchar( )函数用于输入 , 而gets( )函数则用于输入
______________。 9. 设有定义语句:char ww[20]=” \\\\\wab\\n”; 则表达式:strlen(ww) 的值是
__________。 10. 设有定义语句:char str[7]=”abcdef”, 则数组元素str[2]中的字符是
______,数组元素str[6]中的字符是__________。 11. 函数中的形参和调用时的实参都是变量时,传递方式为________; 都是数组名时,传递方式为_________。
12. 设有 char *p=”12345”, 则printf(“%s”,p)的输出是 ;
而 printf(“%c”,*p)的输出则是_________。
13. 设有以下说明,则变量qq在内存中所占的字节数是________,如果将关
键字 struct 改为 union 则变量qq所占的字节数为________。 struct student{ char name[10];
int nl; float ave; } qq;
14. 巳知当前目录下有一个名为file.txt的文本文件,写出将该文件打开(只允许
写)的语句: FILE *fP; 。
二、 单项选择题(10分,每题1分)
1.已知:int main(int argc,char *argv[ ])...形成可执行文件ww.exe, 执行如下:ww a1 a2 a3 则:argc为_____。 A. 3
B. 1
C. 2
D. 4
2. 在C语言中,逻辑量“假”的值用______表示。
A. false B. 0 C. 非0 D. 负数
3. 已知函数原型声明为:char *www(char a, char b);该函数的类型为___。 A.指向字符型的指针 B.字符型 C.整型
D.指向整型的指针
4.有语句char str1[20]=”hello”, str2[10]= “world”;则将字符串“world”连接到”hello”之后,正确的语句为______。 A. str1=str1+”world”; 5.设有如下程序段:
B. strcat(str1 ;str2);
C. str1=str1+str2; D. strcat(str2 , str1); int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11} int *p[3]={a[0],a[1],a[2]},**pp; pp=p;
则对数组元素的错误引用是______。
A. pp[0][1] B. a[1][2] C. p[3][1] D. *(*(p+2)+2) 6.判断字符型变量 ch 的值是否为大写英文字母的表达式为______ A. „A‟<=ch<=‟Z‟
B. ch>=‟A‟ && ch<=‟Z‟ D. ch>=‟A‟ || ch<=‟Z‟
C. ch>‟a‟ && ch<=‟z‟
7.已知 w=3,x=2,y=3,z=3,a=4,b=2;则执行语句(a=w>x) || (b=y>z);后,a, b的值为 _________。 A.1和1 B. 0和0
C.1和2 D. 4和2
8.若有定义语句int a[]={1,2,3,4,5,6,7,8,9,10},*p=a; 值为 8 的数组元素的正确表示为______:
A. a[8] B. a+7
9.下列程序运行结果是______。 #define A 2
#define AA A+A/2 void main(void) {
printf(“%d,”,AA); printf(“%d\\n”,5*AA); }
A.3,11
B.3,15
C. p+7
D. *(p+7)
C.2,10 D.8,40
10. 若有如下定义,则对ex中的a成员的正确引用是_____。 struct sk { int a; float b;} ex, *p = &ex;
A. (*p).ex.a B. p->a C. p->ex..a D. p.ex.a
三、 写出以下程序的运行结果(30分, 每题5分)
1. 下面程序的运行结果为 #include d=( cprintf(\"%d,%d,%d,%d\} 2. 下面程序的运行结果为 #include void fun (int x, int y) { int a, b; float d; a = x+14; b = y-4; d = (float)(b/a); printf (\"d=%f\\n\ } void main(void) { int b=9, a=6, c; c = b/a; printf (\"c=%d\\n\ fun( a, b ); } 3.设从键盘上输入 Hello World! 下面程序的运行结果为 #include for( i=0; ss[i]!='\\0'; i++) if( ss[i]>='A' && ss[i]<='Z') ss[i] = ss[i]+32 ; puts(ss); } 4.下面程序的运行结果为 #include void other( void ); void main(void) { int b = -10; printf(\"b=%d\\n\ other( ); i = i+10; other( ); } void other( ) { static int b; i=i+32; printf(\"i=%d, b=%d\\n\ b = i; } 5.下面程序的运行结果为 #include { int a[10]={78,89,98,66,54,76,45,82,62,95 }; int ka, ki, j; ka = ki = 0; for(j=1; j<10; j++) { if ( a[ki]>a[j] ) ki=j ; if (a[ka] } printf(“%d, %d\\n %d, %d\\n”, ki, a[ki], ka, a[ka] ); }