12秋四四川农业大学业《C语言(专科)》在线作业

所属学校:四川农业大学 科目:C语言(专科) 2015-03-17 18:30:56

《C语言(专科)》在线作业
试卷总分:100
单选题


一、单选题(共 20 道试题,共 100 分。)
1.下列程序执行后输出的结果是( )int d=1;fun (int q) { int d=5;d + =q+ +;printf("%d".d);}main( ){ int a=3;fun(a);d + = a + +;printf("%d/n",d);}
A. 8 4
B. 9 6
C. 9 4
D. 8 5

2.以下程序的输出结果为( )#define PT 5.5 #define S(x) PT * x * x main(){ int a=1, b=2; printf("%4.1f/n", S(a+b));}
A. 12.0
B. 9.5
C. 12.5
D. 49.5

3.若有宏定义如下#define X 5 #define Y X+1 #define Z Y * X / 2则执行以下printf语句后,输出结果是( )int a; a=Yrintf("%d/n", Z)rintf("%d/n", - - a);
A. 7 6
B. 12 6
C. 12 5
D. 7 5
此题选: D
4.以下程序运行后,如果从键盘上输入book <回车book <空格<回车则输出的结果是( )#include<string,hmain(){ char a1[80],a2[80],*s1=a1, *s2=a2;gets(s1); gets(s2);if(! strcmp(s1,s2)) printf("*");esle printf("#"); printf("%d/n",strlen(strcat(s1,s2))); }
A. *8
B.
C. 9
D. #6
E. *9

5.函数调用:strcat(strcpy(str1,str2),str3)的功能是( )
A. 将串str1复制到串str2中后再连接到串str3之后
B. 将串str1连接到串str2之后再复制到串str3之后
C. 将串str2复制到串str1中后再将串str3连接到串str1之后
D. 将串str2连接到串str1之后再将串str1复制到串str3中

6.执行以下程序段时x=-1; do {x=x*x; } while(! x);
A. 循环体将执行一次
B. 循环体将执行两次
C. 循环体将执行无限次
D. 系统将提示有语法错误

7.设有如下定义:char *aa[2]={"abcd","ABCD"};则以下就法中正确的是( )
A. aa数组成元素的值分别是"abcd"和"ABCD"
B. aa是指针变量,它指向含有两个数组元素的字符型一维数组
C. aa数组的两个元素分别存放的是含有4个字符的字符串的首地址
D. aa数组的两个元素中各自存放了字符''a''和''A''的地址

8.下列程序执行后输出的结果是( )#include 〈stdio.h〉f(int a){ int b=0;static c=3: a=c+ +,b+ +;returu(a); }main( ){ int a=2,i,k;for(i=0;i<2;i+ +) k=f(a+ +);printf("%d/n",k);}
A. 3
B. 0
C. 5
D. 4
此题选: D
9.设有以下宏定义#define N 3 #define Y(n) ( (N+1)*n)则执行语句:z=2 * (N+Y(5+1));后,z的值为 ( )
A. 出错
B. 42
C. 48
D. 54

10.给出以下定义char x[ ]="abcdefg";char y[ ]={''a'',''b'',''c'',''d'',''e'',''f'',''g''};则正确的叙述为( )
A. 数组X和数组Y等价
B. 数组x和数组Y的长度相同
C. 数组X的长度大于数组Y的长度
D. 数组X的长度小于数组Y的长度

11.假定所有变量均已正确说明,下列程序段运行后x的值是( )a=b=c=0;x=35;if(!a)x--;else if(b);if(c)x=3;else x=4;
A. 34
B. 4
C. 35
D. 3

12.以下程序运行后,输出结果是( )main(){ char *s="abcde";s+=2;printf("%ld/n",s); }
A. cde字符c的ASCII码值
B. 字符c的地址
C. 出错

13.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是( )
A. 1
B. 2
C. 2.0
D. 2.5

14.以下说法中正确的是( )
A. #define和printf都是C语句###define是C语句,而printf不是##printf是C语句,但#define不是###define和printf都不是C语句
B. #define是C语句,而printf不是
C. printf是C语句,但#define不是
D. #define和printf都不是C语句

15.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是( )
A. c=b=a;
B. (a=c)‖(b=c);
C. (a=c)&&(b=c);
D. a=c=b;

16.运行以下程序后,如果从键盘上输入 china#<回车,则输出结果为( )#include<stdio,hmain(){ int v1=0,v2=0;char ch;while((ch=getchar())!=''#'')switch(ch){ case ''a'';case ''h'';default; v1++;case ''0''; v2++;}printf("%d,%d/n",v1,v2);}
A. 2,0
B. 5,0
C. 5,5
D. 2,5

17.设有如下程序 :#include<stdio.h main(){ int **k, *j, i=100;j=&i; k=&j;printf("%d/n", **k);} 上面程序的输出结果是( )
A. 运行错误
B. 100
C. i的地址
D. j的地址

18.以下程序的输出结果是( )#include main( ){ char *p1,*p2,str[50]="ABCDEFG";p1="abcd"; p2="efgh";strcpy(str+1,p2+1); strcpy(str+3,p1+3);printf("%s",str);}
A. A)AfghdEFG
B. Abfhd
C. Afghd
D. Afgd
此题选: D
19.请选出合法的C语言赋值语句( )
A. a=b=58
B. i++
C. a=58,b=58
D. k=int(a+b)

20.下面能正确进行字符串赋值操作的语句是( )
A. char s[5]={"ABCDE"};
B. char s[5]={''A'',''B'',''C'',''D'',''E''};
C. char *s;s="ABCDEF";
D. char *s; scanf("%s",s);






版权声明

声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系本站我们将配合处理!

分享: