C语言 循环结构程序设计模拟题
C语言程序设计模拟题

《C语言程序设计》模拟题(补)一、简答题1、简述C语言程序的结构。
二、选择题1、下面程序段的输出结果是【1】。
int a=60;a+=a-=a+a;printf(“%d\n”,a);A) 120 B) 60C) -120 D) -602、下面正确的字符常量是【2】。
A) ‘c’B) ‘//’’C) “w”D) ‘’3、以下不能用作标识符的是【3】。
A) _26 B) ScanfC) case D) Double4、下面程序段中循环体执行的次数是【4】。
int a=10, b=0;do {b+=2; a-=2+b; } while(a>=0);A) 1B) 2C) 3D) 45、以下关于函数的叙述正确的是【5】。
A) 函数中必须要有return语句B) 函数中可以有多个return语句,但只有一个被执行C) return语句中必须有一个表达式D) 函数中定义的变量不能与其它函数中的变量同名6、满足x为奇数时值为真,x为偶数时值为假的表达式是【6】。
A) !(x%2==1) B) x%2==0C) x%2 D) !(x%2)7、以下语句中无法正确赋值的是【7】。
A) char b[10]={‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘!’};B) char b[10]; b=“Hello!”;C) char b[10]; strcpy(b, “Hello!”);D) char b[10]= “Hello!”;8、若有以下的定义和语句,则值为5的表达式是【8】。
int a[]={1,2,3,4,5,6,7,8,9,10};A) a[5] B) a[a[4]]C) a[a[3]] D) a[a[5]]9、若有定义:int k=7;float a=2.5,b=4.7;则表达式a+k%3*(int)(a+b)%2/4的值是【9】。
A) 2.B) 2.C) 3.D) 0.10、已知ch是字符型变量,下面正确的赋值语句是【10】。
C语言程序设计模拟试题11一、填...

C语言程序设计模拟试题11一、填空题(每空1分,共10分)1. C语言程序的三种基本结构是顺序结构,选择结构,循环结构。
2. 有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]=0,a[2][1]=6。
3. 设x,y,z均为int 型变量,C语言描述”x或y中有一个小于z”的表达式是x<z||y<z。
4. 若for循环用以下形式表示:for(表达式1;表达式2;表达式3) 循环体语句则执行语句for(i=0;i<3;i++) printf(“*”);时,表达式1执行1次,表达式3执行3次。
5. 在C语言中,十进制数30的八进制表示形式是036 ,十六进制表示形式是0x1e 。
二、阅读填空(每空2分,共12分)。
1.以下函数求x的y次方。
duble fun(double x,int y){int i;double z=1.0;for(i=1;i <=y ;i++)z=z*x ;return(z);}2.下列程序段是从键盘输入的字符中统计数字字符的个数,用换行结束循环。
int n=0; char c;c=getchar();while(c!=‘\n’){ if(c>=‘0’&& c<=‘9’) n++;c=getchar(); }3.下面程序中可求出矩阵a的两条对角线上的元素之和。
#include“stdio.h”main(){int a[3][3]={1,3,6,7,9,11,14,15,17}, sum1=0,sum2=0,i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i==j) sum1=sum1+a[i][j];for(i=0;i<3;i++)for(j=2;j>=0;j--)if((i+j)==2) sum2=sum2+a[i][j];printf(“sum1=%d,sum2=%d\n”,sum1,sum2);}三、单项选择题(每小题2分,共78分)1.一个C语言的执行是从 A 。
国家二级C语言机试(C语言程序设计)模拟试卷26(题后含答案及解析)

国家二级C语言机试(C语言程序设计)模拟试卷26(题后含答案及解析)题型有:1. 选择题选择题1.要求通过while循环不断读入字符,当读入字母N时结束循环。
若变量已正确定义,以下正确的程序段是A.while(ch=getchar( )=‘N’)printf(“%c”,ch);B.while(ch=getchar( )==“N”)printf(“%c”,ch);C.while((ch=getchar( ))!=‘N’)printf(“%c”,ch);D.while((ch=getchar( ))==‘N’)printf(“%c”,ch);正确答案:C解析:while循环的执行过程如下:①计算while后面圆括号中表达式的值,当值为非0时,执步骤②;当值为0时,执行步骤④:②执行循环体一次:③转去执行步骤①;④退出循环。
在选项C)中,表达式(ch=getchar( ))!=‘N’表示输入的字符不等于N,如果这个条件表达式成立,则执行循环体,打印输出输入的字符。
如果这个条件表达式不成立,即输入的字符等于N,则退出循环。
知识模块:C语言程序设计2.若有以下程序main( ){int a=-2,b=0;while(a++) ++b:printf(“%d,%d\n”,a,b);}则程序的输出结果是A.0,2B.1,2C.1,3D.2,3正确答案:B解析:循环体执行两次,第一次表达式a++值为-2,a的值为-1,执行循环体++b,b值为1,第二次表达式a++值为-1,a的值等于0,执行++b,b值为2,第三次判断条件a++,表达式值为0,不执行循环体,但是条件判断以后,a的值为1。
知识模块:C语言程序设计3.由以下while构成的循环,循环体执行的次数是int k=0;while(k=1)k++;A.一次也不执行B.执行一次C.无限次D.有语法错,不能执行正确答案:C解析:循环条件表达式为赋值表达式k=1,因此循环执行无限次。
C语言程序设计模拟试卷 (2)

模拟试卷一一、选择题(每题1分,共15分) 在每小题列出的四个选项中只有一个是符合题目要求的,请在正确答案前点选,错选或未选均不得分。
1. 以下选项中不合法的用户标识是:正确答案A. _123B. printfC. A$D. Dim2. 在C 语言中,char 型数据在内存中的存储形式是:正确答案A. 补码B. 反码C. 原码D. ASCII 码正确答案:D3. 设x,y,z 为int 型变量,且x=3,y=4,z=5 ,则下面表达式中值为0 的是:正确答案A. 'x'&&'y'B. !((x<y)&&!z||1)C. x||y+z&&y-zD. x<=y正确答案:B4. 若有定义:int a=2,b=4,c; 执行语句c=a/b+2.6 ;后,c 的值为:正确答案A. 2.6B. 3.1C. 3D. 2正确答案:D5. 设a 为整型变量,不能确定表达数学关系10<a<15 的为C 语言表达式是:正确答案A. 10<a<15B. a==11|| a==12|| a==13|| a==14C. a>10&&a<15D. !(a<=10)&&!(a>=15)正确答案:C6. 若i 、j 已定义为int 型,则以下程序段中语句printf( “ %d ” ,i*j); 的执行次数是:for (i=3;i>0;i-- )for (j=0;j<4;j++ )printf( “ %d ” ,i*j);正确答案A. 12B. 15C. 16D. 20正确答案:A7. 若有输入语句“ scanf( "%d%d%d",&x,&y,&z); ”,则不能使x值为5,y 值为6,z值为7的输入是:正确答案A. 5 ,6 ,7< 回车>B. 5 6 7< 回车>C. 5 6 < 回车> 7< 回车>D. 5< 回车> ,6< 回车> ,7< 回车>正确答案:A8.执行以下程序段后,x ,y 和z 的值分别是:int x=10,y=20,z=30;if(x>y) z=x; x=y; y=z;正确答案A. 10,20,30B. 20,30,30C. 20,30,10D. 20,30,20正确答案:B9. 以下程序段x = -1;do{ x=x*x;} while(!x); 正确的说法是:正确答案A. 死循环B. 循环一次C. 循环两次D. 有语法错正确答案:B10. 以下正确的函数声明形式是:正确答案A. double fun(int x ,int y)B. double fun(int x ;int y)C. double fun(int x ,int y) ;D. double fun(int x ,y) ;正确答案:C11.若有定义char ch[8] ,则以下表达式中不能代表数组元素ch[1] 的地址是:正确答案A. &ch[0]+1B. &ch[1]C. &ch[0]++D. ch+1正确答案:C12. 若有初始化语句“ int a[5]={1,2,3,4,5}; ”,值为4 的表达式是:正确答案A. a[4]B. a[a[2]+1]C. a[a[2]]D. a[3]+1正确答案:C13. 若已有以下函数定义:float fun(float a, int b){int c;c=(int)a%b;return c;}则主调函数中语句“ printf("%f",fun(fun(fun(34,7),4),3)); ”的输出结果是:正确答案A. 2.000000B. 因参数类型与形参类型不一致,函数调用产生错误C. 2D. 因变量c 的类型与fun 函数的返回值类型不符,故输出值为随机值正确答案:A14. 已知:int a[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+2 ;则值为3 的表达式是:正确答案A. (*p)++B. *p++C. *++pD. ++*p正确答案:B15. 以下可作为函数fopen 中第一个参数的正确格式是:正确答案A. c:\user\file.txtB. "c:\user\file.txt"C. "c:\\user\\file.txt"D. c:user\file.txt正确答案:C二、填空题(共10题)1. 字符串存储时,末尾被系统自动加上字符。
C语言程序设计模拟题

C语言程序设计模拟题1.由C语言编写的代码程序()。
A.可直接执行B.是一个源程序C.经过编译即可执行D.经过编译解释才能执行【答案】B。
解析:C语言编写的代码程序是一个源程序,C语言编写的代码程序需要经过编译、连接、解释才能执行。
2.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。
A.大写字母B.中划线C.数字字符D.下划线【答案】B。
解析:C语言的自定义标识符只能有字母、数字、下划线。
3.下列选项中,不能用作标识符的是()。
A._1234_B._1_2C.int_2_D.2_int_【答案】D。
解析:标识符只能以字母或下划线开头。
4.以下选项中合法的用户标识符是()。
A.longB._2TestC.3DmaxD.A.dat【答案】B。
解析:A为关键字,C开头只能是字母或下划线,D标识符中只能有字母、数字、下划线。
5.以下不能定义为用户标识符的是()。
A.MainB._0C._intD.sizeof【答案】D。
解析:sizeof为关键字,不能用作用户标识符。
6.下列定义变量的语句错误的是()。
A.int _int;B.double int_;C.char For;D.float US$;【答案】D。
解析:标识符只能有字母、数字、下划线。
7.在C语言中,合法的实型常数是()。
A.5E2.0B.E-3C.2E0D.1.3E【答案】C。
解析:实型常量e的前面要有数,e的后面为整数。
8.在C语言中,合法的实型常数是()。
A.1.2E0.5B.3.14159EC.5E-3D.E15【答案】C。
解析:实型常量e的前面要有数,e的后面为整数。
9.以下选项中,不能作为合法常量的是()。
A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0【答案】B。
解析:实型常量e的前面要有数,e的后面为整数。
10.以下不合法的数值常量是()。
A.011B.1e1C.8.0E0.5D.0xab【答案】C。
C语言全国试题(五-循环结构程序设计)

填空题(全国二级C 2008C2-8)
若有定义:int k;,以下程 序段的输出结果是__#_#_2_#_#_4__。
for (k=2; k<6; k++,k++ ) printf (“##%d”,k);
选择题(全国二级C 2007Q1-22)
C 有以下程序,程序的运行结果是 。
#include <stdio.h>
{ int i;
for ( i=1 ; i<=40; i++)
{ if (i++%5==0)
if (++i%8==0)printf("%d ",i); }
printf("\n"); }
A) 5
B) 24
C) 32
D) 40
选择题(全国二级C 2005Q1-27)
设变量已正确定义,则以下能正确
计算f=n!的程序段是 D 。
有以下程序段,且变量已正确定义和赋值
for ( s=1.0,k=1;k<=n; k++ ) s=s+1.0/(k*(k+1));
printf(“s=%f\n\n”,s); 请填空,使下面程序段的功能与之完全相同
s=1.0; k=1; while ( ___k_<_=_n__ ) { s=s+1.0/(k*(k+1)); __k_+_+__ ; } printf(“s=%f\n\n”,s);
以下程序的功能是计算: s=1+12+123+1234+12345。请填空。 main( ) { int t=0, s=0, i; for(i=1; i<=5; i++)
C语言程序设计模拟试题1(附答案)

《C语言程序设计》模拟试卷一一、单项选择题(每题2分,共30分)1、下列有关C语言的叙述中错误的是(D)。
A) C语句必须以分号结束B) 任何一个C程序中有且只有一个主函数C) 复合语句在语法上可被看作一条语句D) C程序中对数据的任何操作都可由运算符实现2、以下不能定义为用户标识符的是(C)。
A) MAIN B) _HJ C)2ong D) LINE13、下列符号中用来表示C语言中的回车换行的是(B)。
A) \r B) \n C)\b D) \t4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为(B)。
A) 1, 1 B) 1, 2 C) 2, 2 D)2, 15、已知ch为字符型变量,下面表达式中正确的是(A)。
A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ”6、以下能正确定义一维数组的是(C)。
A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”;C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5};7、以下语句中能正确定义变量并赋初值的是(A)。
A) char c=65; B) float f=f+1.1;C) double x=12.3e3.6; D) int m=n=2.0;8、在执行下列程序时输入:1357924,则程序的运行结果为(D)。
main( ){ int x, y;scanf(“%2d%2d”,&x,&y);printf(“%2d”,x*y); }A) 13 B) 1357 C) 74 D) 7419、执行下列程序段后输出的结果是(C)。
x = 9;while (x > 7){ printf(“*”); x- -; }A) **** B) *** C) ** D) *10、设char str1[10] = “ABCDE”, str2[10] = “xyz”;则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)A) 9 B) 8 C) 5 D) 311、若用数组名作为函数调用的实参,则传递给形参的是(A)A) 数组的首地址B) 数组第一个元素的值C) 数组中全部元素的值 D) 数组元素的个数12、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为( A ) A)void B)double C)int D)char13、下面不能正确进行字符串赋值操作的语句是(A)A) char s[5]={"ABCD"};B) char s[5]; s="ABCD";C) char *s;s="ABCDEF"; D) char *s="ABCD";14、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是(B )A)++p B)++(*p) C) *(++p) D) *(p+=2)15、下面程序的输出结果是(B)int m=13;int fun( int x, int y){ int m=3;return( x*y-m); }main( ){ int a=7,b=5;printf(“%d\n”, fun(a,b)/m); }A) 1 B) 2 C) 3 D) 10二、判断(每空1分,共10分)1、C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。
C语言程序设计 模拟试卷

C语言程序设计课程模拟试卷一、单项选择题.把合适的选项编号填写在括号内.(每小题3分,共42分)1.在C语言中,每条复合语句的结束标记字符为( )。
A.] B.) C.> D.}2. 在C语言程序中,单行或行尾注释语句使用的标记符为()。
A。
*/ B. /* C. // D. **3。
C语言源程序文件的扩展名为().A。
cpp B. exe C。
obj D。
c4。
控制字符'\n’表示( )。
A. 回车B. 响铃 C。
换行 D。
换页5。
运算符优先级最高的是()。
A。
== B。
+ C. && D。
||6. x<=10的相反表达式为()。
A。
x〉=10 B. x>10C。
x!=10 D. x>07. 每次先进行循环条件的判断,然后再执行循环体的语句为( ).A. for和do B。
for和whileC. while和do D。
switch和break8。
假定对二维数组a[3][4]进行初始化的数据为{{3,5,6},{2,8},{7}},则a[1][1]被初始化为( )。
A。
6 B。
2 C. 8 D. 79。
对于一个二维字符数组a[M][N],存储每个字符串的长度至多为()。
A. MB. NC. M-1D. N-110. 假定p所指对象的值为25,p+1所指对象的值为42,则表达式*p++的值为( )。
A. 25B. 42C. 26 D。
4311。
已知“int a[6][5];”,则元素a[2][4]的地址比该数组的首地址大()。
A. 14个字节 B。
56个字节 C。
28个字节 D. 96个字节12. 在C语言中,用户定义的标识符分为4种作用域,下列选项中不属于这4种作用域的是( )。
A. 全局 B。
语句 C. 文件 D。
局部13. 在一个链表中,每个结点必然存在着一个指向自身结点类型的指针域,用来保存下一个结点的()。
A. 地址B. 值C. 名称D. 类型14. 在C语言中,为只写操作打开一个文本文件的方式为()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.在下列程序中,while循环的循环次数是。(1级)
main( )
{ int i=0;
while(i<10)
{if(i<1) continue;
if(i= =5) break;
i+)1B)10C)6 D)死循环、不能确定次数
第五章
一、选择题
1.while循环语句中,while后一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定有能使此表达式的值变为的操作,否则,循环将会无限制地进行下去。(0级)
A)0 B)1 C)成立D)2
2.在do-while循环中,循环由do开始,用while结束;必须注意的是:在while表达式后面的不能丢,它表示do-while语句的结束。(0级)
C)循环体语句一次也不执行D)循环体语句执行一次
5.程序段如下
int k=1;
while(!k==0){k=k+1;printf("%d\n",k);}
说法正确的是。(1级)
A)while循环执行2次B)循环是无限循环
C)循环体语句一次也不执行D)循环体语句执行一次
6.以下for循环是。(1级)
for(a=0,b=0;(b!=123)&&(a<=4);a++)
{for(;;){if((i%10)==0) break;else i--;}
i+=11;a+=i;
}
printf("%d\n",a);
}
A)21B)32C)33D)11
17.当输入为"quert?"时,下面程序的执行结果是。(1级)
#include<stdio.h>
main()
{char c;
c=getchar();
ave=sum/4.0;
printf("NO%d:%f\n",n,ave);
}
}
上述程序有一条语句出现在程序的位置不正确。这条语句是。(2级)
{if(i%2)printf("#");
else continue;
printf("*");
}
printf("$\n");
}
A)*#*#*#$B)#*#*#*$C)*#*#$D)#*#*$
15.以下程序的输出结果是。(1级)
main()
{int a=0,i;
for(i=;i<5;i++)
{swich(i)
A)0 B)1 C);D),
3.for语句中的表达式可以部分或全部省略,但两个不可省略。但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。(0级)
A)0 B)1 C);D),
4.程序段如下
int k=-20;
while(k=0)k=k+1;
则以下说法中正确的是。(1级)
A)while循环执行20次B)循环是无限循环
A)20B)24C)25D)30
22.以下程序的功能是:按顺序读入10名学生的4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
main()
{intn,k;
float score,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{for(k=1;k<=4;k++)
{scanf("%f",&score);sum+=score};}
20.在C语言的循环语句for,while,do-while中,用于直接中断最内层循环的语句是。(0级)
A)swichB)continueC)breakD)if
21.若i,j已定义为int型,则以下程序段中循环体的总的执行次数是。
(1级)
for(i=5;i;i--)
for(j=0;j<4;j++)
{}
10.执行下面的程序后,a的值为。(1级)
main()
{int a,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1)
{b+=3;
continue;
}
b-=5;
}
}
A)7B)8C)9D)10
11.以下程序的输出结果。(1级)
main()
{
int x=3;
13.以下程序的输出结果。(1级)
main()
{int n=0;
while(n++<=1)
printf("%d\t",n);
printf("%d\n",n);
}
A)1 2 3B)0 1 2C)1 1 2D)1 2 2
14.以下程序的输出结果是。(1级)
main()
{int i;
for(i=1;i<=5;i++)
A)quertB)RvfsuC)quert?D)rvfsu?
19.当输入为"quert?"时,下面程序的执行结果是。(2级)
#include<stdio.h>
main()
{char c;
c=getchar();
while(c!='?')
{
putchar(c);
c=getchar();
}
}
A)quertB)RvfsuC)quert?D)rvfsu?
8.程序段如下
int k=0;while(k++<=2)printf("%d\n",k);
则执行结果是。(1级)
A)1 B)2 C)0 D)无结果
23 1
34 2
9.程序段如下
int k=0;
while(k++<=2);printf("last=%d\n",k);
则执行结果是last=。(1级)
A)2 B)3 C)4 D)无结果
while((c=getchar())!='?')putchar(++c);
}
A)QuertB)vfsuC)quert?D)rvfsu?
18.当输入为"quert?"时,下面程序的执行结果是。(1级)
#include<stdio.h>
main()
{while(putchar(getchar())!='?');}
do
{printf("%3d",x-=2);
}while(--x);
}
A)1 B)30 3 C)1 -2 D)死循环
12.定义如下变量:
int n=10;
则下列循环的输出结果是。(1级)
while(n>7)
{n--;
printf("%d\n",n);
}
A)10B)9C)10D)9
9898
8787
76
{case 0:
case 3:a+=2;
case 1:
case2:a+=3;
default:a+=5;
}
}
printf("%d\n",a);
}
A)31B)13C)10D)20
16.以下程序的输出结果是。(1级)
#include <stdio.h>
main()
{int i=0,a=0;
while(i<20)